Applications requesting to transmit data through a network interface communicate their requests to an operating system to handle the data transmission. That is, the applications do not handle the data transmissions. Instead, the operating system handles interacting with the computer hardware to perform the data transmission. After the application makes the request to transmit data, the application waits to receive a confirmation that the request to transmit data was received and processed.
A conventional method for processing requests to transmit data from applications is illustrated in the flow chart of FIG. 1. A method 100 includes an application requesting to transmit data using a network interface at block 102. The request may be sent to another application, such as a service, running on the computer system. The other application may handle communications with the network interface. At block 104, the interface queues the data transmission while the application waits for a completion notice. The network interface vets the data transmission request and at block 106, the network interface returns a completion code to the application after vetting the request. At block 108, the application resumes operation after receiving the completion code. The network interface may attempt to transmit the data at some time in the future.
Because the application does not interface with the network interface directly, the application pauses each time a request to transmit data is submitted to the other application. This delay can significantly interrupt the operation of the application. For example, the application may perform server functions on a network, such that the application is frequently transmitting data. In this case, a delay each time that a data transmission request is generated significantly reduces the application's throughput.